import api from './api'

// 用户相关API
const userAPI = {
  // 用户登录
  login(data) {
    return api.post('/user/login', data)
  },
  
  // 用户注册
  register(data) {
    return api.post('/user/register', data)
  },
  
  // 用户登出
  logout() {
    return api.post('/user/logout')
  },
  
  // 获取用户信息
  getUserInfo() {
    return api.get('/user/info')
  },
  
  // 更新用户信息
  updateUserInfo(data) {
    return api.put('/user/info', data)
  },
  
  // 修改密码
  changePassword(data) {
    return api.post('/user/password/change', data)
  },
  
  // 忘记密码
  forgetPassword(data) {
    return api.post('/user/password/forget', data)
  },
  
  // 重置密码
  resetPassword(data) {
    return api.post('/user/password/reset', data)
  },
  
  // 获取收货地址列表
  getAddressList() {
    return api.get('/user/address/list')
  },
  
  // 添加收货地址
  addAddress(data) {
    return api.post('/user/address/add', data)
  },
  
  // 更新收货地址
  updateAddress(addressId, data) {
    return api.put(`/user/address/${addressId}`, data)
  },
  
  // 删除收货地址
  deleteAddress(addressId) {
    return api.delete(`/user/address/${addressId}`)
  },
  
  // 设置默认收货地址
  setDefaultAddress(addressId) {
    return api.post(`/user/address/${addressId}/default`)
  },
  
  // 获取用户收藏列表
  getFavorites(params = {}) {
    return api.get('/user/favorites', {
      params: {
        page: params.page || 1,
        pageSize: params.pageSize || 10,
        type: params.type || 'product', // product, shop
        ...params
      }
    })
  },
  
  // 添加收藏
  addFavorite(data) {
    return api.post('/user/favorite/add', data)
  },
  
  // 取消收藏
  removeFavorite(favoriteId) {
    return api.delete(`/user/favorite/${favoriteId}`)
  },
  
  // 获取用户优惠券
  getCoupons(params = {}) {
    return api.get('/user/coupons', {
      params: {
        page: params.page || 1,
        pageSize: params.pageSize || 10,
        status: params.status || 'available', // available, used, expired
        ...params
      }
    })
  },
  
  // 领取优惠券
  receiveCoupon(couponId) {
    return api.post(`/user/coupon/${couponId}/receive`)
  },
  
  // 获取用户浏览历史
  getBrowseHistory(params = {}) {
    return api.get('/user/history', {
      params: {
        page: params.page || 1,
        pageSize: params.pageSize || 10,
        ...params
      }
    })
  },
  
  // 清空浏览历史
  clearBrowseHistory() {
    return api.delete('/user/history/clear')
  },
  
  // 获取用户积分
  getPoints() {
    return api.get('/user/points')
  },
  
  // 获取积分明细
  getPointsHistory(params = {}) {
    return api.get('/user/points/history', {
      params: {
        page: params.page || 1,
        pageSize: params.pageSize || 10,
        ...params
      }
    })
  },
  
  // 获取用户余额
  getBalance() {
    return api.get('/user/balance')
  },
  
  // 获取余额明细
  getBalanceHistory(params = {}) {
    return api.get('/user/balance/history', {
      params: {
        page: params.page || 1,
        pageSize: params.pageSize || 10,
        ...params
      }
    })
  }
}

export default userAPI